07. Configurando a nossa App (settings.py)¶
O arquivo principal de uma aplicação Django é o settings.py, e é nele que iremos mexer bem agora.
Configurando idioma no settings.py¶
Aonde você tem:
LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC'
Substituia por:
LANGUAGE_CODE = 'pt-br' TIME_ZONE = 'America/Sao_Paulo'
Criando um arquivo .env e profissionalizando a estrutura¶
É muito importante para termos uma estrutura mais profissional separarmos as configurações de ambiente de configurações do projeto. Para isso usaremos da prática de se criar um arquivo .env
na raiz do projeto onde deverá conter as minhas configurações.
Utilizaremos de uma lib criado pelo Henrique Bastos (welcomethedjango : referência de curso na área) chamada python-decouple e também da lib dj-database-url.
- Crie o arquivo:
.env
na raiz do projeto com o seguinte conteúdo
# Pegue a sua SECRET_KEY já criada ou gere outra hash SECRET_KEY=_fcu!1-n$76+@v=v4u9y68)z!)x0%8hj!51#k$+o)05gkgq40e DEBUG=True ALLOWED_HOSTS=127.0.0.1,.localhost DATABASE_URL=mysql://seu_usuario:sua_senha@localhost:3306/nomedobancoprincipal DATABASE_SECUNDARIO=mysql://seu_usuario:sua_senha@localhost:3306/nomedobancosecundario LANGUAGE_CODE=pt-br TIME_ZONE=America/Sao_Paulo USE_I18N=True USE_L10N=True USE_TZ=True
- Abra o arquivo settings.py e adicione logo após a
linha 13 : import os
o seguinte conteúdo:
settings.py
from decouple import config, Csv from dj_database_url import parse
Configurações no settings.py vindas do .env¶
settings.py
# SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = config('SECRET_KEY') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = config('DEBUG', cast=bool, default=False) ALLOWED_HOSTS = config('ALLOWED_HOSTS', cast=Csv(), default=[]) # Database # https://docs.djangoproject.com/en/2.0/ref/settings/#databases DATABASES = dict() DATABASES['default'] = config('DATABASE_URL', cast=parse, default='sqlite:///' + os.path.join(BASE_DIR, 'db.sqlite3')) # Usarei aqui: farsoft, mas você pode usar o nome que quiser DATABASES['farsoft'] = config('DATABASE_SECUNDARIO', cast=parse) # Internationalization # https://docs.djangoproject.com/en/2.0/topics/i18n/ LANGUAGE_CODE = config('LANGUAGE_CODE', default='pt-br') TIME_ZONE = config('TIME_ZONE', default='America/Sao_Paulo') USE_I18N = config('USE_I18N', default=True, cast=bool) USE_L10N = config('USE_L10N', default=True, cast=bool) USE_TZ = config('USE_TZ', default=True, cast=bool)
Aproveitando, você pode deixar o settings.py ainda mais profissional, para isso vamos separar os INSTALLED_APPS por DJANGO_APPS, THIRD_APPS, LOCAL_APPS.
settings.py
# Application definition # Libs padrão quem vem com a instalação do Django DJANGO_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] # Libs de Terceiros THIRD_APPS = [ 'django_extensions', 'rest_framework', 'rest_framework.authtoken', 'rest_auth', 'corsheaders', ] # Apps locais que criarmos LOCAL_APPS = [ 'api.core', ] INSTALLED_APPS = DJANGO_APPS + THIRD_APPS + LOCAL_APPS